Introduction - Gas
Station Data
In this analysis, we will be looking at gas station data which
consists of 72,798 records and 30 feature variables with 1 binary
outcome variable. A map was created based on a random sample of 500 gas
stations in the US.
Data Preparation
Importing the data set:
poc<-read.csv(url("https://melaniemiller1.github.io/STA533/w07-HW/POC.csv"))
Take random sample of 500 gas stations in the US:
sample500<- poc[sample(nrow(poc), 500), ]
Gas Stations in the US
- leaflet
label.msg <- ~paste(sample500$ADDRESS,",", sample500$county, sample500$STATE,",",sample500$ZIPnew)
leaflet(sample500) %>%
addTiles() %>%
setView(lng=mean(sample500$xcoord), lat=mean(sample500$ycoord), zoom = 14) %>%
addRectangles(
lng1 = min(sample500$xcoord), lat1 = min(sample500$ycoord),
lng2 = max(sample500$xcoord), lat2 = max(sample500$ycoord),
fillColor = "transparent"
) %>%
fitBounds(
lng1 = min(sample500$xcoord), lat1 = min(sample500$ycoord),
lng2 = max(sample500$xcoord), lat2 = max(sample500$ycoord) ) %>%
addMarkers(~xcoord, ~ycoord, label = label.msg)
From this plot of a random sample of gas stations in the US, the
sample shows that there is a higher proportion of gas stations in the
east coast. There is a lot of sparse space in the midwest, while there
is hardly any areas on the east coast without any gas stations.
Gas Stations in the US
- plotly
#library(plotly)
g <- list( scope = 'usa',
projection = list(type = 'albers usa'),
showland = TRUE,
landcolor = toRGB("gray95"),
subunitcolor = toRGB("gray85"),
countrycolor = toRGB("gray85"),
countrywidth = 0.5,
subunitwidth = 0.5
)
###
fig <- plot_geo(sample500, lat = ~ycoord, lon = ~xcoord) %>%
add_markers( text = ~paste(STATE, county, ADDRESS, ZIPnew,
sep = "<br>"),
hoverinfo = "text") %>%
layout( title = 'Gas Stations in the United States',
geo = g )
fig
Here is another example of plotting the same data in a different
mapping format.
Philly Crime Data
In this analysis, we will be looking at Philly Crime data which
consists of 15,520 records and 18 variables and contains crime cases
since 2015.A map was created based on a subset of data only in 2023.
Data Preparation
Importing Philly Crime Since 2015 data
phillycrime<-read.csv(url("https://melaniemiller1.github.io/STA533/w07-HW/PhillyCrimeSince2015.csv"))
Extract information of year from the variable date and then add the
new variable year to the data set
year<- format(as.Date(phillycrime$date, format="%m/%d/%Y"),"%Y")
phillycrime<- cbind(phillycrime, year)
Subset only containing 2023 data
philly2023<- phillycrime %>%
filter(year == 2023)
Map of Crime in Philly
in 2023
pal <- c("orange", "navy")
pal[which(philly2023$fatal=="Nonfatal")] <- "navy"
pal[which(philly2023$fatal=="Fatal")] <- "orange"
label.msg <- paste("Neighborhood:", philly2023$neighborhood,
"<br> Race:",philly2023$race)
leaflet(philly2023) %>%
addTiles() %>%
setView(lng=-75.1652, lat=39.9526, zoom = 10.5) %>%
addCircleMarkers(
~lng,
~lat,
color = pal,
stroke = FALSE,
fillOpacity = 0.4,
label = ~paste("Neighborhood:", neighborhood,
"Sex:", sex,
"Race:", race,
"Age:", age)) %>%
addLegend(position = "bottomright",
colors = c("orange", "navy"),
labels= c("Fatal", "Nonfatal"),
title= "Fatal",
opacity = 0.4)
This map shows the crime in Philly in 2023. The navy points are
nonfatal crimes, while the orange are fatal crimes. BY looking at the
map visually, it appears there are more nonfatal crimes in 2023, however
there are still many prominent fatal crimes.
LS0tDQp0aXRsZTogIlNUQSA1MzMgSG9tZXdvcmsgNyINCmF1dGhvcjogIk1lbGFuaWUgTWlsbGVyIg0KZGF0ZTogIldlc3QgQ2hlc3RlciBVbml2ZXJzaXR5Ig0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KICAgIHRvY19mbG9hdDogeWVzDQogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMNCiAgICB0b2NfY29sbGFwc2VkOiB5ZXMNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICBzbW9vdGhfc2Nyb2xsOiB0cnVlDQogICAgdGhlbWU6IGx1bWVuDQplZGl0b3Jfb3B0aW9uczoNCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGlubGluZQ0KLS0tDQoNCg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCg0KLyogVGFibGUgb2YgY29udGVudCAtIG5hdmlnYXRpb24gKi8NCmRpdiNUT0MgbGkgew0KICAgIGxpc3Qtc3R5bGU6bm9uZTsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTsNCiAgICBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7DQogICAgYmFja2dyb3VuZC1yZXBlYXQ6bm9uZTsNCiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOjA7DQogICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQogICAgY29sb3I6ICM3ODBjMGM7DQp9DQoNCg0KLyogVGl0bGUgZm9udHMgKi8NCmgxLnRpdGxlIHsNCiAgZm9udC1zaXplOiAyNHB4Ow0KICBjb2xvcjogZGFya2JsdWU7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQogIGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7DQp9DQpoNC5hdXRob3IgeyANCiAgZm9udC1zaXplOiAxOHB4Ow0KICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsNCiAgY29sb3I6IG5hdnk7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCmg0LmRhdGUgeyANCiAgZm9udC1zaXplOiAxOHB4Ow0KICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsNCiAgY29sb3I6IGRhcmtibHVlOw0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoNCi8qIFNlY3Rpb24gaGVhZGVycyAqLw0KaDEgew0KICAgIGZvbnQtc2l6ZTogMjJweDsNCiAgICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgICBjb2xvcjogZGFya3JlZDsNCiAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KDQpoMiB7DQogICAgZm9udC1zaXplOiAxOHB4Ow0KICAgIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICAgIGNvbG9yOiBuYXZ5Ow0KICAgIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCmgzIHsgDQogICAgZm9udC1zaXplOiAxNXB4Ow0KICAgIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICAgIGNvbG9yOiBkYXJrcmVkOw0KICAgIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCmg0IHsNCiAgICBmb250LXNpemU6IDE4cHg7DQogICAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogICAgY29sb3I6IGRhcmtyZWQ7DQogICAgdGV4dC1hbGlnbjogbGVmdDsNCn0NCjwvc3R5bGU+DQoNCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQojIGNvZGUgY2h1bmsgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIFIgY29kZSwgd2FybmluZ3MsIGFuZCBvdXRwdXQgDQojIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIG91dHB1dCBmaWxlcy4NCmlmICghcmVxdWlyZSgidGlkeXZlcnNlIikpIHsNCiAgIGluc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIpDQogICBsaWJyYXJ5KHRpZHl2ZXJzZSkNCn0NCmlmICghcmVxdWlyZSgia25pdHIiKSkgew0KICAgaW5zdGFsbC5wYWNrYWdlcygia25pdHIiKQ0KICAgbGlicmFyeShrbml0cikNCn0NCmlmICghcmVxdWlyZSgianBlZyIpKSB7DQogICBpbnN0YWxsLnBhY2thZ2VzKCJqcGVnIiwgZGVwZW5kZW5jaWVzID0gVFJVRSkNCiAgIGxpYnJhcnkoanBlZykNCn0NCg0KaWYgKCFyZXF1aXJlKCJSQ3VybCIpKSB7DQogICBpbnN0YWxsLnBhY2thZ2VzKCJSQ3VybCIsIGRlcGVuZGVuY2llcyA9IFRSVUUpDQogICBsaWJyYXJ5KFJDdXJsKQ0KfQ0KDQppZiAoIXJlcXVpcmUoInBsb3RseSIpKSB7DQogICBpbnN0YWxsLnBhY2thZ2VzKCJwbG90bHkiLCBkZXBlbmRlbmNpZXMgPSBUUlVFKQ0KICAgbGlicmFyeShwbG90bHkpDQp9DQppZiAoIXJlcXVpcmUoImxlYWZsZXQiKSkgew0KICAgIGluc3RhbGwucGFja2FnZXMoImxlYWZsZXQiKSAgICAgICAgICAgICAgDQogICAgbGlicmFyeSgibGVhZmxldCIpDQp9DQppZiAoIXJlcXVpcmUoInRtYXAiKSkgew0KICAgIGluc3RhbGwucGFja2FnZXMoInRtYXAiKSAgICAgICAgICAgICAgDQogICAgbGlicmFyeSgidG1hcCIpDQp9DQoNCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSwgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgd2FybmluZyA9IEZBTFNFLCAgIA0KICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFRSVUUsICAgDQogICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IEZBTFNFLA0KICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgPSBOQSkNCmBgYA0KDQoNCiMgSW50cm9kdWN0aW9uIC0gR2FzIFN0YXRpb24gRGF0YQ0KSW4gdGhpcyBhbmFseXNpcywgd2Ugd2lsbCBiZSBsb29raW5nIGF0IGdhcyBzdGF0aW9uIGRhdGEgd2hpY2ggY29uc2lzdHMgb2YgNzIsNzk4IHJlY29yZHMgYW5kIDMwIGZlYXR1cmUgdmFyaWFibGVzIHdpdGggMSBiaW5hcnkgb3V0Y29tZSB2YXJpYWJsZS4gQSBtYXAgd2FzIGNyZWF0ZWQgYmFzZWQgb24gYSByYW5kb20gc2FtcGxlIG9mIDUwMCBnYXMgc3RhdGlvbnMgaW4gdGhlIFVTLg0KDQoNCiMgRGF0YSBQcmVwYXJhdGlvbg0KDQpJbXBvcnRpbmcgdGhlIGRhdGEgc2V0Og0KYGBge3J9DQpwb2M8LXJlYWQuY3N2KHVybCgiaHR0cHM6Ly9tZWxhbmllbWlsbGVyMS5naXRodWIuaW8vU1RBNTMzL3cwNy1IVy9QT0MuY3N2IikpDQpgYGANCg0KDQpUYWtlIHJhbmRvbSBzYW1wbGUgb2YgNTAwIGdhcyBzdGF0aW9ucyBpbiB0aGUgVVM6DQpgYGB7cn0NCnNhbXBsZTUwMDwtIHBvY1tzYW1wbGUobnJvdyhwb2MpLCA1MDApLCBdDQpgYGANCg0KDQojIEdhcyBTdGF0aW9ucyBpbiB0aGUgVVMgLSBsZWFmbGV0DQpgYGB7cn0NCmxhYmVsLm1zZyA8LSB+cGFzdGUoc2FtcGxlNTAwJEFERFJFU1MsIiwiLCBzYW1wbGU1MDAkY291bnR5LCBzYW1wbGU1MDAkU1RBVEUsIiwiLHNhbXBsZTUwMCRaSVBuZXcpDQoNCmxlYWZsZXQoc2FtcGxlNTAwKSAlPiUNCiAgYWRkVGlsZXMoKSAlPiUgDQogIHNldFZpZXcobG5nPW1lYW4oc2FtcGxlNTAwJHhjb29yZCksIGxhdD1tZWFuKHNhbXBsZTUwMCR5Y29vcmQpLCB6b29tID0gMTQpICU+JQ0KICAgYWRkUmVjdGFuZ2xlcygNCiAgICBsbmcxID0gbWluKHNhbXBsZTUwMCR4Y29vcmQpLCBsYXQxID0gbWluKHNhbXBsZTUwMCR5Y29vcmQpLA0KICAgIGxuZzIgPSBtYXgoc2FtcGxlNTAwJHhjb29yZCksIGxhdDIgPSBtYXgoc2FtcGxlNTAwJHljb29yZCksDQogICAgZmlsbENvbG9yID0gInRyYW5zcGFyZW50IiANCiAgICApICU+JQ0KICBmaXRCb3VuZHMoDQogICAgbG5nMSA9IG1pbihzYW1wbGU1MDAkeGNvb3JkKSwgbGF0MSA9IG1pbihzYW1wbGU1MDAkeWNvb3JkKSwNCiAgICBsbmcyID0gbWF4KHNhbXBsZTUwMCR4Y29vcmQpLCBsYXQyID0gbWF4KHNhbXBsZTUwMCR5Y29vcmQpICkgJT4lDQogIGFkZE1hcmtlcnMofnhjb29yZCwgfnljb29yZCwgbGFiZWwgPSBsYWJlbC5tc2cpDQpgYGANCg0KRnJvbSB0aGlzIHBsb3Qgb2YgYSByYW5kb20gc2FtcGxlIG9mIGdhcyBzdGF0aW9ucyBpbiB0aGUgVVMsIHRoZSBzYW1wbGUgc2hvd3MgdGhhdCB0aGVyZSBpcyBhIGhpZ2hlciBwcm9wb3J0aW9uIG9mIGdhcyBzdGF0aW9ucyBpbiB0aGUgZWFzdCBjb2FzdC4gVGhlcmUgaXMgYSBsb3Qgb2Ygc3BhcnNlIHNwYWNlIGluIHRoZSBtaWR3ZXN0LCB3aGlsZSB0aGVyZSBpcyBoYXJkbHkgYW55IGFyZWFzIG9uIHRoZSBlYXN0IGNvYXN0IHdpdGhvdXQgYW55IGdhcyBzdGF0aW9ucy4gDQoNCg0KIyBHYXMgU3RhdGlvbnMgaW4gdGhlIFVTIC0gcGxvdGx5DQpgYGB7cn0NCiNsaWJyYXJ5KHBsb3RseSkNCg0KZyA8LSBsaXN0KCAgICAgIHNjb3BlID0gJ3VzYScsDQogICAgICAgICAgIHByb2plY3Rpb24gPSBsaXN0KHR5cGUgPSAnYWxiZXJzIHVzYScpLA0KICAgICAgICAgICAgIHNob3dsYW5kID0gVFJVRSwNCiAgICAgICAgICAgIGxhbmRjb2xvciA9IHRvUkdCKCJncmF5OTUiKSwNCiAgICAgICAgIHN1YnVuaXRjb2xvciA9IHRvUkdCKCJncmF5ODUiKSwNCiAgICAgICAgIGNvdW50cnljb2xvciA9IHRvUkdCKCJncmF5ODUiKSwNCiAgICAgICAgIGNvdW50cnl3aWR0aCA9IDAuNSwNCiAgICAgICAgIHN1YnVuaXR3aWR0aCA9IDAuNQ0KICAgICAgICkNCiMjIw0KZmlnIDwtIHBsb3RfZ2VvKHNhbXBsZTUwMCwgbGF0ID0gfnljb29yZCwgbG9uID0gfnhjb29yZCkgJT4lIA0KICBhZGRfbWFya2VycyggdGV4dCA9IH5wYXN0ZShTVEFURSwgY291bnR5LCBBRERSRVNTLCBaSVBuZXcsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXAgPSAiPGJyPiIpLA0KICANCiAgICAgICAgICAgICAgaG92ZXJpbmZvID0gInRleHQiKSAgICU+JSANCg0KICBsYXlvdXQoIHRpdGxlID0gJ0dhcyBTdGF0aW9ucyBpbiB0aGUgVW5pdGVkIFN0YXRlcycsIA0KICAgICAgICAgIGdlbyA9IGcgKQ0KDQpmaWcNCmBgYA0KDQpIZXJlIGlzIGFub3RoZXIgZXhhbXBsZSBvZiBwbG90dGluZyB0aGUgc2FtZSBkYXRhIGluIGEgZGlmZmVyZW50IG1hcHBpbmcgZm9ybWF0Lg0KDQoNCg0KIyBQaGlsbHkgQ3JpbWUgRGF0YQ0KSW4gdGhpcyBhbmFseXNpcywgd2Ugd2lsbCBiZSBsb29raW5nIGF0IFBoaWxseSBDcmltZSBkYXRhIHdoaWNoIGNvbnNpc3RzIG9mIDE1LDUyMCByZWNvcmRzIGFuZCAxOCB2YXJpYWJsZXMgYW5kIGNvbnRhaW5zIGNyaW1lIGNhc2VzIHNpbmNlIDIwMTUuQSBtYXAgd2FzIGNyZWF0ZWQgYmFzZWQgb24gYSBzdWJzZXQgb2YgZGF0YSBvbmx5IGluIDIwMjMuDQoNCg0KIyBEYXRhIFByZXBhcmF0aW9uDQpJbXBvcnRpbmcgUGhpbGx5IENyaW1lIFNpbmNlIDIwMTUgZGF0YQ0KYGBge3J9DQpwaGlsbHljcmltZTwtcmVhZC5jc3YodXJsKCJodHRwczovL21lbGFuaWVtaWxsZXIxLmdpdGh1Yi5pby9TVEE1MzMvdzA3LUhXL1BoaWxseUNyaW1lU2luY2UyMDE1LmNzdiIpKQ0KYGBgDQoNCg0KRXh0cmFjdCBpbmZvcm1hdGlvbiBvZiB5ZWFyIGZyb20gdGhlIHZhcmlhYmxlIGRhdGUgYW5kIHRoZW4gYWRkIHRoZSBuZXcgdmFyaWFibGUgeWVhciB0byB0aGUgZGF0YSBzZXQNCmBgYHtyfQ0KeWVhcjwtIGZvcm1hdChhcy5EYXRlKHBoaWxseWNyaW1lJGRhdGUsIGZvcm1hdD0iJW0vJWQvJVkiKSwiJVkiKQ0KDQpwaGlsbHljcmltZTwtIGNiaW5kKHBoaWxseWNyaW1lLCB5ZWFyKQ0KYGBgDQoNCg0KU3Vic2V0IG9ubHkgY29udGFpbmluZyAyMDIzIGRhdGENCmBgYHtyfQ0KcGhpbGx5MjAyMzwtIHBoaWxseWNyaW1lICU+JQ0KICAgICAgICAgICAgIGZpbHRlcih5ZWFyID09IDIwMjMpDQpgYGANCg0KDQojIE1hcCBvZiBDcmltZSBpbiBQaGlsbHkgaW4gMjAyMw0KDQpgYGB7cn0NCnBhbCA8LSBjKCJvcmFuZ2UiLCAibmF2eSIpDQpwYWxbd2hpY2gocGhpbGx5MjAyMyRmYXRhbD09Ik5vbmZhdGFsIildIDwtICJuYXZ5Ig0KcGFsW3doaWNoKHBoaWxseTIwMjMkZmF0YWw9PSJGYXRhbCIpXSA8LSAib3JhbmdlIg0KDQpsYWJlbC5tc2cgPC0gcGFzdGUoIk5laWdoYm9yaG9vZDoiLCBwaGlsbHkyMDIzJG5laWdoYm9yaG9vZCwNCiAgICAgICAgICAgICAgICAgICAiPGJyPiBSYWNlOiIscGhpbGx5MjAyMyRyYWNlKQ0KDQoNCg0KbGVhZmxldChwaGlsbHkyMDIzKSAlPiUgDQogIGFkZFRpbGVzKCkgJT4lDQogIHNldFZpZXcobG5nPS03NS4xNjUyLCBsYXQ9MzkuOTUyNiwgem9vbSA9IDEwLjUpICU+JQ0KICANCiAgICBhZGRDaXJjbGVNYXJrZXJzKA0KICAgICAgICAgICAgfmxuZywgDQogICAgICAgICAgICB+bGF0LA0KICAgICAgICAgICAgY29sb3IgPSBwYWwsDQogICAgICAgICAgICBzdHJva2UgPSBGQUxTRSwgDQogICAgICAgICAgICBmaWxsT3BhY2l0eSA9IDAuNCwNCiAgICAgICAgICAgIGxhYmVsID0gfnBhc3RlKCJOZWlnaGJvcmhvb2Q6IiwgbmVpZ2hib3Job29kLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXg6Iiwgc2V4LCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWNlOiIsIHJhY2UsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFnZToiLCBhZ2UpKSAgJT4lDQoNCiAgYWRkTGVnZW5kKHBvc2l0aW9uID0gImJvdHRvbXJpZ2h0IiwgDQogICAgICAgICAgICBjb2xvcnMgPSBjKCJvcmFuZ2UiLCAibmF2eSIpLA0KICAgICAgICAgICAgbGFiZWxzPSBjKCJGYXRhbCIsICJOb25mYXRhbCIpLA0KICAgICAgICAgICAgdGl0bGU9ICJGYXRhbCIsDQogICAgICAgICAgICBvcGFjaXR5ID0gMC40KSAgDQoNCg0KYGBgDQoNCg0KVGhpcyBtYXAgc2hvd3MgdGhlIGNyaW1lIGluIFBoaWxseSBpbiAyMDIzLiBUaGUgbmF2eSBwb2ludHMgYXJlIG5vbmZhdGFsIGNyaW1lcywgd2hpbGUgdGhlIG9yYW5nZSBhcmUgZmF0YWwgY3JpbWVzLiBCWSBsb29raW5nIGF0IHRoZSBtYXAgdmlzdWFsbHksIGl0IGFwcGVhcnMgdGhlcmUgYXJlIG1vcmUgbm9uZmF0YWwgY3JpbWVzIGluIDIwMjMsIGhvd2V2ZXIgdGhlcmUgYXJlIHN0aWxsIG1hbnkgcHJvbWluZW50IGZhdGFsIGNyaW1lcy4gDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQo=